home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / libxml2 / libxml / list.h < prev    next >
C/C++ Source or Header  |  2006-04-25  |  3KB  |  138 lines

  1. /*
  2.  * Summary: lists interfaces
  3.  * Description: this module implement the list support used in 
  4.  * various place in the library.
  5.  *
  6.  * Copy: See Copyright for the status of this software.
  7.  *
  8.  * Author: Gary Pennington <Gary.Pennington@uk.sun.com>
  9.  */
  10.  
  11. #ifndef __XML_LINK_INCLUDE__
  12. #define __XML_LINK_INCLUDE__
  13.  
  14. #include <libxml/xmlversion.h>
  15.  
  16. #ifdef __cplusplus
  17. extern "C" {
  18. #endif
  19.  
  20. typedef struct _xmlLink xmlLink;
  21. typedef xmlLink *xmlLinkPtr;
  22.  
  23. typedef struct _xmlList xmlList;
  24. typedef xmlList *xmlListPtr;
  25.  
  26. /**
  27.  * xmlListDeallocator:
  28.  * @lk:  the data to deallocate
  29.  *
  30.  * Callback function used to free data from a list.
  31.  */
  32. typedef void (*xmlListDeallocator) (xmlLinkPtr lk);
  33. /**
  34.  * xmlListDataCompare:
  35.  * @data0: the first data
  36.  * @data1: the second data
  37.  *
  38.  * Callback function used to compare 2 data.
  39.  *
  40.  * Returns 0 is equality, -1 or 1 otherwise depending on the ordering.
  41.  */
  42. typedef int  (*xmlListDataCompare) (const void *data0, const void *data1);
  43. /**
  44.  * xmlListWalker:
  45.  * @data: the data found in the list
  46.  * @user: extra user provided data to the walker
  47.  *
  48.  * Callback function used when walking a list with xmlListWalk().
  49.  *
  50.  * Returns 0 to stop walking the list, 1 otherwise.
  51.  */
  52. typedef int (*xmlListWalker) (const void *data, const void *user);
  53.  
  54. /* Creation/Deletion */
  55. XMLPUBFUN xmlListPtr XMLCALL
  56.         xmlListCreate        (xmlListDeallocator deallocator,
  57.                                      xmlListDataCompare compare);
  58. XMLPUBFUN void XMLCALL        
  59.         xmlListDelete        (xmlListPtr l);
  60.  
  61. /* Basic Operators */
  62. XMLPUBFUN void * XMLCALL        
  63.         xmlListSearch        (xmlListPtr l,
  64.                      void *data);
  65. XMLPUBFUN void * XMLCALL        
  66.         xmlListReverseSearch    (xmlListPtr l,
  67.                      void *data);
  68. XMLPUBFUN int XMLCALL        
  69.         xmlListInsert        (xmlListPtr l,
  70.                      void *data) ;
  71. XMLPUBFUN int XMLCALL        
  72.         xmlListAppend        (xmlListPtr l,
  73.                      void *data) ;
  74. XMLPUBFUN int XMLCALL        
  75.         xmlListRemoveFirst    (xmlListPtr l,
  76.                      void *data);
  77. XMLPUBFUN int XMLCALL        
  78.         xmlListRemoveLast    (xmlListPtr l,
  79.                      void *data);
  80. XMLPUBFUN int XMLCALL        
  81.         xmlListRemoveAll    (xmlListPtr l,
  82.                      void *data);
  83. XMLPUBFUN void XMLCALL        
  84.         xmlListClear        (xmlListPtr l);
  85. XMLPUBFUN int XMLCALL        
  86.         xmlListEmpty        (xmlListPtr l);
  87. XMLPUBFUN xmlLinkPtr XMLCALL    
  88.         xmlListFront        (xmlListPtr l);
  89. XMLPUBFUN xmlLinkPtr XMLCALL    
  90.         xmlListEnd        (xmlListPtr l);
  91. XMLPUBFUN int XMLCALL        
  92.         xmlListSize        (xmlListPtr l);
  93.  
  94. XMLPUBFUN void XMLCALL        
  95.         xmlListPopFront        (xmlListPtr l);
  96. XMLPUBFUN void XMLCALL        
  97.         xmlListPopBack        (xmlListPtr l);
  98. XMLPUBFUN int XMLCALL        
  99.         xmlListPushFront    (xmlListPtr l,
  100.                      void *data);
  101. XMLPUBFUN int XMLCALL        
  102.         xmlListPushBack        (xmlListPtr l,
  103.                      void *data);
  104.  
  105. /* Advanced Operators */
  106. XMLPUBFUN void XMLCALL        
  107.         xmlListReverse        (xmlListPtr l);
  108. XMLPUBFUN void XMLCALL        
  109.         xmlListSort        (xmlListPtr l);
  110. XMLPUBFUN void XMLCALL        
  111.         xmlListWalk        (xmlListPtr l,
  112.                      xmlListWalker walker,
  113.                      const void *user);
  114. XMLPUBFUN void XMLCALL        
  115.         xmlListReverseWalk    (xmlListPtr l,
  116.                      xmlListWalker walker,
  117.                      const void *user);
  118. XMLPUBFUN void XMLCALL        
  119.         xmlListMerge        (xmlListPtr l1,
  120.                      xmlListPtr l2);
  121. XMLPUBFUN xmlListPtr XMLCALL    
  122.         xmlListDup        (const xmlListPtr old);
  123. XMLPUBFUN int XMLCALL        
  124.         xmlListCopy        (xmlListPtr cur,
  125.                      const xmlListPtr old);
  126. /* Link operators */
  127. XMLPUBFUN void * XMLCALL          
  128.         xmlLinkGetData          (xmlLinkPtr lk);
  129.  
  130. /* xmlListUnique() */
  131. /* xmlListSwap */
  132.  
  133. #ifdef __cplusplus
  134. }
  135. #endif
  136.  
  137. #endif /* __XML_LINK_INCLUDE__ */
  138.